.request-loader {
  position: absolute;
  top: 0;
  height: 100%;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: end;
  backdrop-filter: blur(
    1px
  ); // TODO: Have gradient blurred background fade into clear transparent
}

.request-loader__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.request-loader__item {
  --padding-inline: 3px;
  --padding-block: 3px;
  display: flex;
  gap: 4px;
  align-items: center;
  transition: all 0.3s ease;
  flex: 1; // if not collapsed
  color: var(--theme-font-color);
  border-radius: 4px;
  padding-inline: var(--padding-inline);
  padding-block: var(--padding-block);

  &--pending {
    background: rgba(var(--rgb-theme-bg), 0.5);
    backdrop-filter: blur(4px);
    opacity: 0.5;
  }

  &--active {
    @extend .glassy-border;
    background: rgba(var(--rgb-theme-bg), 0.5);
    backdrop-filter: blur(4px);
  }

  &--done {
    opacity: 0.7;
    color: var(--primary-color);
    gap: 0;
    width: calc(var(--padding-inline) * 2 + 16px); // icon size + padding
  }

  &--error {
    color: var(--red-color);
  }
}

.request-loader__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  flex-shrink: 0;
  transition: all 0.3s ease;
  color: var(--font-color);
}

.request-loader__item-text {
  font-size: fontsize(10);
  color: var(--font-color);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: all 0.3s ease;
}
